package com.ltmonitor.service;

import com.ltmonitor.entity.TerminalCommand;
import com.ltmonitor.video.entity.VideoRequest;
import com.ltmonitor.web.vo.VideoServerInfo;

import java.util.List;

/**
 * 对当前的视频请求进行管理
 */
public interface IOnlineVideoRequestService {
    void updateOnlineTime(String sessionId);

    void removeVideoSession(String sessionId);

    void updateVideoRequest(VideoRequest v);

    TerminalCommand stopVideoRequest(long userId, String simNo, int channelId, String sessionId, int stream, int mediaType);

    /**
     * 获取当前的在线视频请求
     * @return
     */
    List<VideoRequest> getOnlineVideoRequest();

    /**
     * 获取某一设备的所有的视频播放请求
     * @param simNo
     * @param channel
     * @return
     */
    List<VideoRequest> getOnlineVideoRequest(String simNo, int channel);
    /**
     * =清除本次会话的所有的视频请求
     * @param sessionId
     */
    void clearRequest(String sessionId);

    /**
     * 下发关闭音实时视频的命令
     * @param simNo
     * @param channelId
     */
    TerminalCommand sendStopVideoRealPlayRequestCommand(String simNo, int channelId);

    /**
     * 结束回放
     * @param simNo
     * @param channelId
     * @return
     */
    TerminalCommand sendStopVideoPlayBackCommand(String simNo, int channelId);

    /**
     * 下发关闭双向对讲的命令
     * @param simNo
     * @param channelId
     * @return
     */
    TerminalCommand sendStopVideoTalkCommand(String simNo, int channelId);

    /**
     * 更新当前最新的服务器连接的流量信息
     * @param vi
     */
    void updateVideoServerInfo(VideoServerInfo vi);

    VideoServerInfo getVideoServerInfo();
    List<VideoRequest> getMyOwnOnlineVideoRequest(String sessionId);
}
